{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 多项式回归"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "x = np.random.uniform(-3, 3, size=100)\n",
    "X = x.reshape(-1, 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "y = 0.5 * x**2 + x + 2 + np.random.normal(0, 1, size=100)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(x, y)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 线性拟合"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.linear_model import LinearRegression"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "lin_reg = LinearRegression()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lin_reg.fit(X, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_predict = lin_reg.predict(X)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(x, y)\n",
    "plt.plot(x, y_predict, color='r')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "可以看到线性拟合的效果很差"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 解决方案：添加一个特征"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "X2 = np.hstack([X, X**2])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(100, 2)"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X2.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "lin_reg2 = LinearRegression()\n",
    "lin_reg2.fit(X2, y)\n",
    "y_predict2 = lin_reg2.predict(X2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(x, y)\n",
    "plt.plot(np.sort(x), y_predict2[np.argsort(x)], color='r')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 1.08232508,  0.46569528])"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lin_reg2.coef_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2.2139424488206254"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lin_reg2.intercept_"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
